package com.pb.wkflow.core.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

/**
 * @author 苗益辉
 * @date 2022/4/14 15:36
 */
public class DateUtils {

    private DateUtils() {

    }


    public static Date strToDate(String date) {
        if(date == null) {
            return null;
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return simpleDateFormat.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 时间格式化
     * @param date 时间
     * @return String
     */
    public static String dateToStr(Date date) {
        if(date == null) {
            return null;
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return simpleDateFormat.format(date);
    }

    /**
     * 格林威治时间转东八区，并格式化
     * @param date 时间
     * @return String
     */
    public static String dateToEastAreaStr(Date date) {
        if(date == null) {
            return null;
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
        return simpleDateFormat.format(date);
    }

    /**
     * 时间字符串格式转换
     * @param dateStr dateStr
     * @param formFormat formFormat
     * @param toFormat toFormat
     * @return String
     */
    public static String dataStrFormat(String dateStr, String formFormat, String toFormat) {
        if(StringUtils.isBlank(dateStr)) {
            return null;
        }
        SimpleDateFormat fromDateFormat = new SimpleDateFormat(formFormat);
        SimpleDateFormat toDateFormat = new SimpleDateFormat(toFormat);
        try {
            Date date =  fromDateFormat.parse(dateStr);
            return toDateFormat.format(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}
